1. Field of the Invention
The present invention relates generally to an improved data processing system, and more specifically to providing a source code control system that employs test case execution results to mandate that software code have a specific level of quality for check-in to a central repository.
2. Description of the Related Art
In the field of software development, a project may move through multiple cycles in which code is developed, debugged, and delivered for production. A project may also need to be maintained and enhanced past the delivery stage, and may be released multiple times in different versions. To monitor the evolution of code through the development process, a code management system may be used to track all development work and code changes in a set of files and allow a team of developers to collaborate by sharing control of different versions of the source files in a central repository.
One example of a code management system is the Concurrent Versions System (CVS). CVS is a tool that is enables asynchronous collaboration on projects. CVS maintains a history of all versions of the project at each point in the development in a central repository. Users may upload or commit their files to the central repository and download the files onto their local computer for editing. For example, when a source code file is registered with the code management system, a client may download or “check-out” a copy of the source code file onto their local computer from the central repository of the code management system. Once the client is finished editing the file, the client may upload or “check-in” the changes to the edited source file to the central repository of the code management system. If the check-in operation is successful, the code management system commits these changes to the source code file in the central repository. A commit in the context of a code management system refers to submitting the latest changes of the source code to the central repository, wherein these changes are made a part of the head source code file in the repository. A head source code file is the latest revision of the source code in the central repository. The version numbers of all files involved with the changes automatically increment, and the code management system writes various data to its log files, including user-supplied description information (e.g., comments explaining the changes that were made), the date, and the code author's name. If a commit of a source code file has been performed, a client may still rollback the source code changes committed to the central repository by retrieving a copy of a previous version of the source code file from the central repository.